package com.jasmine.bjstkserver.manager.os;

import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;

/**
 * OS接口
 * @author jasmineXz
 */
public interface OsManager {

    /**
     * 字符串
     * @param inputStream 输入流
     * @param fileName 文件名
     * @return 文件路径
     */
    String put(InputStream inputStream,String fileName);


    /**
     * 非HTTP请求线程上传文件
     * @param inputStream 文件流
     * @param fileName 文件名
     * @param userId 用户ID,用于获取该用户字典
     * @return 文件地址
     */
    String putAsync(InputStream inputStream,String fileName,Integer userId);

    /**
     * 上传MultipartFile文件
     * @param file 文件
     * @param fileName 文件名
     * @return 文件路径
     */
    String put(MultipartFile file,String fileName);


    /**
     * 删除文件,异步删除
     * 异步删除不在同一线程内,无法通过 {@link AuthUtil} 获取当前用户,需指定用户以查询字典
     * @param fileName 文件名称
     * @param userId 用户ID
     */
    void deleteAsync(String fileName,Integer userId);
}
